package alkuperainen;
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import java.util.ArrayList;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;

/**
 *
 * @author juhohaar
 */
public class OpiskelijaTest {

    public OpiskelijaTest() {
    }

    @BeforeClass
    public static void setUpClass() throws Exception {
    }

    @AfterClass
    public static void tearDownClass() throws Exception {
    }

    @Before
    public void setUp() {
    }

    @After
    public void tearDown() {
    }

    /**
     * Test of getNimi method, of class Opiskelija.
     */
    @Test
    public void testGetNimi() {
        System.out.println("getNimi");
        Opiskelija instance = new Opiskelija("Matti", 1);
        String expResult = "Matti";
        String result = instance.getNimi();
        assertEquals(expResult, result);
    }

    /**
     * Test of getOpnro method, of class Opiskelija.
     */
    @Test
    public void testGetOpnro() {
        System.out.println("getOpnro");
        Opiskelija instance = new Opiskelija("Matti", 1);
        int expResult = 1;
        int result = instance.getOpnro();
        assertEquals(expResult, result);
    }

    /**
     * Test of lisaaIlmoittautuminen method, of class Opiskelija.
     */
    @Test
    public void testLisaaIlmoittautuminen() {
        System.out.println("lisaaIlmoittautuminen");
        Kurssi k = new Kurssi("ohtu", 1, 4, 1, 1, 2011, 2, 2, 2011);
        Opiskelija instance = new Opiskelija("Matti", 1);
        instance.lisaaIlmoittautuminen(k);

    }

    /**
     * Test of lisaaSuoritus method, of class Opiskelija.
     */
    @Test
    public void testLisaaSuoritus() {
        System.out.println("lisaaSuoritus");
        Kurssi k = new Kurssi("ohtu", 1, 4, 1, 1, 2011, 2, 2, 2011);
        Opiskelija instance = new Opiskelija("Matti", 1);
        instance.lisaaSuoritus(k);

        assertEquals(k, instance.getSuoritukset().get(0));
    }

    /**
     * Test of lisaaTapahtuma method, of class Opiskelija.
     */
    @Test
    public void testLisaaTapahtuma() {
        System.out.println("lisaaTapahtuma");
        Tapahtuma t = new Tapahtuma("Ohtu Luento", "A111", 1, 10, 15, 1, 1, 2011, 11, 00, 1, 5, 2011);
        Opiskelija instance = new Opiskelija("Matti", 1);
        instance.lisaaTapahtuma(t);

        assertEquals(t, instance.getTapahtumat().get(0));
    }

    /**
     * Test of getTapahtumat method, of class Opiskelija.
     */
    @Test
    public void testGetTapahtumat() {
        System.out.println("getTapahtumat");
        Opiskelija instance = new Opiskelija("Matti", 1);

        Tapahtuma t1 = new Tapahtuma("Ohtu Luento", "A111", 1, 10, 15, 1, 1, 2011, 11, 00, 1, 5, 2011);
        Tapahtuma t2 = new Tapahtuma("Ohtu Luento", "A222", 1, 12, 15, 3, 1, 2011, 13, 59, 3, 5, 2011);
        Tapahtuma t3 = new Tapahtuma("Ohtu Luento", "A333", 1, 12, 15, 2, 1, 2011, 13, 59, 3, 5, 2011);
        instance.lisaaTapahtuma(t1);
        instance.lisaaTapahtuma(t2);
        instance.lisaaTapahtuma(t3);


        ArrayList<Tapahtuma> expResult = new ArrayList<Tapahtuma>();
        expResult.add(t1);
        expResult.add(t2);
        expResult.add(t3);
        ArrayList<Tapahtuma> result = instance.getTapahtumat();
        for (int i = 0; i < result.size(); i++) {
            assertEquals(expResult.get(i), result.get(i));
        }
    }

    /**
     * Test of getIlmot method, of class Opiskelija.
     */
    @Test
    public void testGetIlmot() {
        System.out.println("getIlmot");
        Opiskelija instance = new Opiskelija("Matti", 1);
        Kurssi k1 = new Kurssi("ohtu", 1, 4, 1, 1, 2011, 2, 2, 2011);
        Kurssi k2 = new Kurssi("ohpe", 2, 4, 2, 2, 2011, 3, 3, 2011);
        Kurssi k3 = new Kurssi("ohma", 3, 4, 2, 2, 2011, 3, 3, 2011);
        instance.lisaaIlmoittautuminen(k1);instance.lisaaIlmoittautuminen(k2);instance.lisaaIlmoittautuminen(k3);


        ArrayList<Kurssi> expResult = new ArrayList<Kurssi>();
        expResult.add(k1);expResult.add(k2);expResult.add(k3);


        ArrayList<Kurssi> result = instance.getIlmot();
        
        for (int i = 0; i < result.size(); i++) {
            assertEquals(expResult.get(i), result.get(i));
        }
    }

    /**
     * Test of getSuoritukset method, of class Opiskelija.
     */
    @Test
    public void testGetSuoritukset() {
        System.out.println("getSuoritukset");
        Opiskelija instance = new Opiskelija("Matti", 1);
        Kurssi k1 = new Kurssi("ohtu", 1, 4, 1, 1, 2011, 2, 2, 2011);
        Kurssi k2 = new Kurssi("ohpe", 2, 4, 2, 2, 2011, 3, 3, 2011);
        Kurssi k3 = new Kurssi("ohma", 3, 4, 2, 2, 2011, 3, 3, 2011);
        instance.lisaaSuoritus(k1);instance.lisaaSuoritus(k2);instance.lisaaSuoritus(k3);


        ArrayList<Kurssi> expResult = new ArrayList<Kurssi>();
        expResult.add(k1);expResult.add(k2);expResult.add(k3);


        ArrayList<Kurssi> result = instance.getIlmot();

        for (int i = 0; i < result.size(); i++) {
            assertEquals(expResult.get(i), result.get(i));
        }
    }

    /**
     * Test of countOp method, of class Opiskelija.
     */
    @Test
    public void testCountOp() {
        System.out.println("countOp");
        Opiskelija instance = new Opiskelija("Matti", 1);
        Kurssi k1 = new Kurssi("ohtu", 1, 4, 1, 1, 2011, 2, 2, 2011);
        Kurssi k2 = new Kurssi("ohpe", 2, 4, 2, 2, 2011, 3, 3, 2011);
        Kurssi k3 = new Kurssi("ohma", 3, 4, 2, 2, 2011, 3, 3, 2011);
        instance.lisaaSuoritus(k1);instance.lisaaSuoritus(k2);instance.lisaaSuoritus(k3);

        int expResult = 12;
        int result = instance.countOp();
        assertEquals(expResult, result);
    }

    /**
     * Test of countSuunniteltuOp method, of class Opiskelija.
     */
    @Test
    public void testCountSuunniteltuOp() {
        System.out.println("countSuunniteltuOp");
        Opiskelija instance = new Opiskelija("Matti", 1);
        Kurssi k1 = new Kurssi("ohtu", 1, 4, 1, 1, 2011, 2, 2, 2011);
        Kurssi k2 = new Kurssi("ohpe", 2, 4, 2, 2, 2011, 3, 3, 2011);
        Kurssi k3 = new Kurssi("ohma", 3, 4, 2, 2, 2011, 3, 3, 2011);
        instance.lisaaIlmoittautuminen(k1);instance.lisaaIlmoittautuminen(k2);instance.lisaaIlmoittautuminen(k3);

        int expResult = 12;
        int result = instance.countSuunniteltuOp();
        assertEquals(expResult, result);
    }
}
